The present invention relates to the implementation of client/server data transfer protocols, and, in particular, to a method and system that allows a server computer to accept data transfer requests from a client computer, authorize those requests and map them to target devices, and then direct the target devices to directly respond to the client computer, thereby eliminating unnecessary data traffic in a communications network.
The fibre channel (xe2x80x9cFCxe2x80x9d) is an architecture and protocol for a data communication network for interconnecting a number of different combinations of computers and peripheral devices. The FC supports a variety of upper-level protocols, including the small computer systems interface (xe2x80x9cSCSIxe2x80x9d) protocol. A computer or peripheral device is linked to the network through an FC port and copper wires or optical fibres. An FC port includes a transceiver and an interface controller, and the computer peripheral device in which the FC port is contained is called a xe2x80x9chost.xe2x80x9d The FC port exchanges data with the host via a local data bus, such as a peripheral computer interface (xe2x80x9cPCIxe2x80x9d) bus. The interface controller conducts lower-level protocol exchanges between the fibre channel and the computer or peripheral device in which the FC port resides.
A popular paradigm for accessing remote data in computer networks is the client/server architecture. According to this architecture, a client computer sends a request to read or write data to a server computer. The server computer processes the request by checking that the client server has authorization and permission to read or write the data, by mapping the requested read or write operation to a particular mass storage device, and by serving as an intermediary in the transfer of data from the client computer to the mass storage device, in case of a write operation, or from the mass storage device to the client, in case of a read operation.
In common, currently-available and previously-available communication network architectures, the server computer communicates with the client computer through a local area network (xe2x80x9cLANxe2x80x9d) and the server computer communicates with a number of mass storage devices over a local bus, such as a SCSI bus. In such systems, the server is required to store and forward the data transferred as a result of the read or write operation because the server represents a bridge between two dissimilar communications media.
With the advent of the FC, client computers, server computers, and mass storage devices may all be symmetrically interconnected by a single communications medium. The traditional client/server architecture is commonly ported to the FC using the same type of client/server protocols as are used in the LAN and SCSI networks discussed above. Implementing a client/server architecture using these client/server protocols introduces significant inefficiencies in data transfer with concomitant increases in I/O latency and loss of fibre channel throughput. Designers and manufacturers of fibre channel ports that are used to interconnect mass storage devices, client computers and server computers, have recognized the need for designing new client/server protocols that are better suited to take advantage of the FC.
The present invention provides a fibre channel (xe2x80x9cFCxe2x80x9d) interface controller that supports, in hardware, efficient client/server data transfer protocols, and provides a method for implementing the efficient data transfer protocols. The interface controller of the present invention supports the forwarding of a read or write command from a server computer to a mass storage device such that the identification contained in the forwarded data transfer command is that of the client computer, rather than the server computer that forwards the data transfer command. The interface controller also supports copying of the source identification contained in data and status messages sent by a mass storage device to a client computer in response to the data transfer command automatically into the data structure that is used by the interface controller to check correspondence between the destination identification associated with a data transfer command issued by the client computer and the source identification of data messages and status messages received back by the client computer in response to the data transfer command. These two features of the interface controller enable the data transfer protocol of the present invention. In the data transfer protocol, a server computer, in response to receiving a read command from a client computer, forwards the read command to a target mass storage device, which, in turn, transmits the data requested by the read command and a final status message directly back to the requesting client computer. In response to a write command received by a server computer from a client computer, the server computer forwards the write command to a target mass storage device. The target mass storage device sends a transfer ready status message directly to the client computer, receives, directly from the client computer, the data to be written to the mass storage device, and finally sends a status message directly back to the client computer. This improved data transfer protocol eliminates unnecessary storing and forwarding of data by the server computer and eliminates the transfer of redundant data messages and status messages within the communications network.